Sharing synchronized data between users can be a complex process, particularly for computer data. The complexity in part arises from the fact that computer data files can be very large. For example, users and applications commonly want to share audio or video information, text, pictures, games or other media data. Such media data files can be quite large and distributing large data files to multiple users or applications can place unachievable demands on network bandwidth and processing resources.
For example, in a conventional star network, each user establishes a connection with a source server, creating a hub and spoke model for data transfer. U.S. Pat. No. 8,750,305, incorporated by reference in its entirety, describes a star network architecture. Users share audio and video, text and pictures, games or other media assets by transferring data from the hub and across the spokes. In operation, the hub processes requests for data files by transferring the data files to the requestor as quickly as possible. To synchronize the distribution of data, the hub needs to transfer the data to the users quickly enough to have the data appear to arrive at each user at essentially the same time. Synchronizing data among users presents a unique set of challenges, with the load on the hub network increasing at least proportionally to the number of users.
For example, in the context of a presentation or a conference, with a star network each user establishes a connection with a hub network through a Wi-Fi connection. Each user-to-server connection allows data from transfer from the network to the user, but it also takes up bandwidth and processing resources and gradually impairs the ability of other users to access or access quickly the same data. This negatively impacts certain data transfer applications, such as a streaming media, or a running slide show presentation. In the extreme, some users may be unable to access data due to an inability to connect to the server. This is particularly problematic in classroom or conference settings where participants may wish to follow a presentation in real-time to take notes or interact with colleagues.
As an alternative to star networks, mesh networks have been developed to allow devices to work together to form a mesh and to transfer data from one device to another device via other devices in the mesh network. U.S. Pat. No. 7,710,986, incorporated by reference, describes a mesh network architecture. A mesh network does away with the hub present in the star network, with each connected device in the mesh forming a node. Information can then travel through a combination of nodes, bypassing any broken links or unavailable nodes. Through a mesh device, two devices which are not directly connected can still exchange information through other devices. An example of a mesh network is the Apple Multipeer Connectivity Framework, released in iOS7, which allows nearby iOS devices to communicate with one another even in the absence of common Wi-Fi network.
Mesh networks come with their own set of challenges, including the necessity to keep track of devices available in a mesh network, despite a potentially large number of devices entering, exiting and reentering the mesh network.
As a result, devices within the mesh network frequently use a ping, the sending of a signal to other devices, to determine the number and identity of devices effectively active within the mesh network. In the absence of a response to a ping, the unresponsive device is determined to have left the mesh network, or to at least be unresponsive. As the size of the mesh increases, the transfer of data between nodes, such as sending and receiving pings increases exponentially, creating data noise which is difficult to minimize. Thus, mesh networks can become resource constrained due to the overhead needed to track nodes in the network and the current state of the nodes.
As such, there remains a need for improved systems and methods for accommodating synchronous access by users to data presented by a leader.